package com.yanggu.scala.chapater10

import scala.collection.mutable.ArrayBuffer

object ArrayBufferDemo01 {

  def main(args: Array[String]): Unit = {
    //1. ArrayBuffer需要引入mutable包
    val arr01 = ArrayBuffer[Int](1, 2, 3, 4)

    //2. 访问单个元素
    println(arr01(1))

    //3. 重新赋值单个元素
    arr01(1) = 20
    println(arr01(1))

    println(arr01.mkString(", "))

    println("-------------------foreach循环遍历-------------------")

    //3. foreach遍历
    arr01.foreach(println(_))

    println("-------------------for循环遍历-------------------")

    //4. for遍历
    for (item <- arr01) {
      println(item)
    }

    //5. 新增元素
    //需要牢记这种语法在spark中大量使用了这种语法
    //添加单个元素
    arr01 += 1
    //批量添加元素
    arr01 += (1, 2, 3, 4)
    //将其他集合中的所有元素添加到arr01中
    arr01 ++= Array(1, 2, 3, 4)

    //6. 动态删除或者增加
    println("测试ArrayBuffer新增、修改、删除元素后内存地址是否发生改变")
    println(arr01.hashCode())
    arr01.append(5)
    println(arr01.hashCode())
    arr01.foreach(println(_))
    //根据索引或者是下标删除数据
    arr01.remove(0)
    println(arr01.length)
  }

}
